﻿// Apache-2.0 License
// Copyright (c) 2021-2022 SuperJeff
// 微信:15906588664  QQ:1024489

using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;

namespace Admin.Net.InformationPlatform.Service.SRM.Dto
{

    /// <summary>
    /// 查询采购订单清单条件
    /// </summary>
    public class GetPurchaseOrderPageListInput : BasePageInput
    {
        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTime? StartDate { get; set; }
        /// <summary>
        /// 结束日期
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 采购单头状态:'A'   '已核准'   'C'   '结案'   'D'   '抽单'   'F'   '已发出'    'N'   '未审核'   'R'   '已拒绝'   'W'   '送签中'   'X'   '作废'   'Y'   '已审核'   'H'   '留置'   'UH'   '取消留置' 
        /// </summary>
        /// <example>Y</example>
        public string Status { get; set; } = "Y";

        /// <summary>
        /// 采购单号
        /// </summary>
        public string PurchaseOrderNo { get; set; } = string.Empty;
        /// <summary>
        /// 项次
        /// </summary>
        public string PurchaseOrderSeq { get; set; } = string.Empty;
        /// <summary>
        /// 采购单明细状态 '1'   '一般'   '2'   '正常结案'   '3'   '长结'   '4'   '短结'   '5'   '留置'
        /// </summary>
        /// <example>1</example>
        public string PurchaseOrderStatus { get; set; } = string.Empty;

        /// <summary>
        /// 采购员编号
        /// </summary>
        public string BuyerNo { get; set; } = string.Empty;
        /// <summary>
        /// 采购员名称
        /// </summary>
        public string BuyerName { get; set; } = string.Empty;
        /// <summary>
        /// 品号
        /// </summary>
        public string ProductNo { get; set; } = string.Empty;
        /// <summary>
        /// 品名        
        /// </summary>
        public string ProductName { get; set; } = string.Empty;
        /// <summary>
        /// 规格
        /// </summary>
        public string ProductSpecifications { get; set; } = string.Empty;
        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; } = string.Empty;
        /// <summary>
        /// 完成状态 ：Y ：完成 N： 未完成 A：全部
        /// </summary>
        public string CompletionStatus { get; set; } = string.Empty;
    }

    /// <summary>
    /// 获取工单信息条件
    /// </summary>
    public class GetWorkOrderInformationInput
    {
        /// <summary>
        /// 工单号
        /// </summary>
        public string WorkOrderNo { get; set; }
    }

    /// <summary>
    /// 查询采购出入库清单条件
    /// </summary>
    public class GetStockInOutRecordPagedListInput : BasePageInput
    {
        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTime? StartDate { get; set; }
        /// <summary>
        /// 结束日期
        /// </summary>
        public DateTime? EndDate { get; set; }
        /// <summary>
        /// 采购单号
        /// </summary>
        public string PurchaseOrderNo { get; set; } = string.Empty;
        /// <summary>
        /// 项次
        /// </summary>
        public string PurchaseOrderSeq { get; set; } = string.Empty;
        /// <summary>
        /// 品号
        /// </summary>
        public string ProductNo { get; set; } = string.Empty;
        /// <summary>
        /// 品名        
        /// </summary>
        public string ProductName { get; set; } = string.Empty;
        /// <summary>
        /// 规格
        /// </summary>
        public string ProductSpecifications { get; set; } = string.Empty;
    }
    /// <summary>
    /// 采购查询库存条件
    /// </summary>
    public class GetInventoryQuantityListInput : BasePageInput
    {
        /// <summary>
        /// 库位
        /// </summary>
        public string WarehouseLocation { get; set; } = string.Empty;
        /// <summary>
        /// 料号
        /// </summary>
        public string ProductNo { get; set; } = string.Empty;
        /// <summary>
        /// 品名
        /// </summary>
        public string ProductName { get; set; } = string.Empty;
        /// <summary>
        /// 规格
        /// </summary>
        public string ProductSpecifications { get; set; } = string.Empty;

    }
    /// <summary>
    /// 查询采购订单清单条件
    /// </summary>
    public class GetPurchaseOrderWithBarcodePagedListInput : BasePageInput
    {
        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTime? StartDate { get; set; }
        /// <summary>
        /// 结束日期
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 采购单号
        /// </summary>
        public string PurchaseOrderNo { get; set; } = string.Empty;

        /// <summary>
        /// 品号
        /// </summary>
        public string ProductNo { get; set; } = string.Empty;
        /// <summary>
        /// 品名        
        /// </summary>
        public string ProductName { get; set; } = string.Empty;
        /// <summary>
        /// 规格
        /// </summary>
        public string ProductSpecifications { get; set; } = string.Empty;
        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; } = string.Empty;
    }
    /// <summary>
    /// 获取采购单对应条码信息
    /// </summary>
    public class GetPurchaseOrderBarcodeListPagedListInput : BasePageInput
    {
        /// <summary>
        /// 采购单号
        /// </summary>
        public string PurchaseOrderNo { get; set; } = string.Empty;
        /// <summary>
        /// 项次
        /// </summary>
        public string PurchaseOrderSeq { get; set; } = string.Empty;
    }
    /// <summary>
    /// 获取采购单对应条码信息
    /// </summary>
    public class GetPurchaseOrderWithBarcodeInput
    {
        /// <summary>
        /// 采购单号
        /// </summary>
        public string PurchaseOrderNo { get; set; } = string.Empty;
        /// <summary>
        /// 项次
        /// </summary>
        public string PurchaseOrderSeq { get; set; } = string.Empty;
    }

    /// <summary>
    /// 生成采购单到货条码
    /// </summary>
    public class AddPurchaseOrderBarcode
    {
        /// <summary>
        /// 采购单号
        /// </summary>
        [Required(ErrorMessage = "不能为空")]
        public string PurchaseOrderNo { get; set; } = string.Empty;
        /// <summary>
        /// 项次
        /// </summary>
        [Required(ErrorMessage = "不能为空")]
        public string PurchaseOrderSeq { get; set; } = string.Empty;
        /// <summary>
        /// 标准数量
        /// </summary>
        [Required(ErrorMessage = "不能为空")]
        public decimal StandardQuantity { get; set; }
        /// <summary>
        /// 生成数量
        /// </summary>
        [Required(ErrorMessage = "不能为空")]
        public decimal GeneratedQuantity { get; set; }

        /// <summary>
        /// 供应商生产时间
        /// </summary>
        [Required(ErrorMessage = "不能为空")]
        public DateTime SupplierProductionTime { get; set; }




    }

    /// <summary>
    /// 生成采购单到货条码
    /// </summary>
    public class DeletePurchaseBarcode
    {
        /// <summary>
        /// 条码编号
        /// </summary>
        [Required(ErrorMessage = "不能为空")]
        public string BarcodeNumber { get; set; } = string.Empty;




    }
    /// <summary>
    /// 获取评分条件
    /// </summary>
    public class GetCustomerRatingsInput
    {
        /// <summary>
        /// 年月
        /// </summary>
        public string YearsMonth { get; set; } = string.Empty;
    }

    /// <summary>
    /// 获取仓库物料出入明细
    /// </summary>
    public class GetProductInoutDetailsInput
    {

        /// <summary>
        /// 料号
        /// </summary>
        public string ProductNo { get; set; }
        /// <summary>
        /// 仓库
        /// </summary>
        public string Warehouse { get; set; }
    }
    /// <summary>
    /// 获取料号文件
    /// </summary>
    public class GetProductFileNameListInput
    {

        /// <summary>
        /// 料号
        /// </summary>
        [Required(ErrorMessage = "料号不能为空"), MinLength(6, ErrorMessage = "料号不能少于3个字符")]
        public string ProductNo { get; set; }

        /// <summary>
        /// 供应商编号
        /// </summary>
        public string supplierNo { get; set; }
        /// <summary>
        /// 采购单号
        /// </summary>
        public string purchaseOrderNo { get; set; }
        /// <summary>
        /// 项次
        /// </summary>
        public string purchaseOrderSeq { get; set; }
    }
    /// <summary>
    /// 获取料号文件
    /// </summary>
    public class GetProductFileInput
    {

        /// <summary>
        /// key值
        /// </summary>
        [Required(ErrorMessage = "料号不能为空"), MinLength(6, ErrorMessage = "料号不能少于3个字符")]
        public string Key { get; set; }
        /// <summary>
        /// key值
        /// </summary>
        [Required(ErrorMessage = "文件名称不能为空"), MinLength(6, ErrorMessage = "文件名称不能少于3个字符")]
        public string FileName { get; set; }
    }


}
